#include <stdio.h>
#include <unistd.h>
#include <sys/time.h>
#include <sys/select.h>
#define BUF_SIZE  30

int main(int argc, char * argv[])
{
    fd_set reads,temp;
    int result,str_len;
    char buf[BUF_SIZE];
    struct timeval timeout;
    FD_ZERO (&reads);
    FD_SET(0,&reads) ; //0 input

    timeout.tv_sec =5;
    timeout.tv_usec = 5000;
    while(1)
    {
        temp = reads;
        timeout.tv_sec =5;
        timeout.tv_usec = 0;
        result = select(1,&temp,0,0,&timeout);
        if(result ==-1)
        {
            puts("select() error\n");
            break;
        }
        else if(result == 0)
        {
            puts("time out \n");
        }
        else
        {
            if(FD_ISSET(0,&temp))
            {
                str_len = read(0,buf,BUF_SIZE);
                buf[BUF_SIZE]=0;
                printf("message from console: %s",buf);
            }
        }
        
    }
    return 0;

}